package modelo.oad;

import java.util.List;

import modelo.bean.CompraBean;
import modelo.bean.CotizacionBean;
import modelo.bean.Dividendo;
import modelo.bean.EstrategiaBean;
import modelo.bean.OperacionBean;
import modelo.bean.ValorBean;
import modelo.bean.ValorEstrategiaBean;
import modelo.bean.SoporteBean;
import modelo.bean.ResistenciaBean;
import modelo.bean.VentaBean;
//import modelo.bean.ValorBean;
import modelo.negocio.except.NegocioException;
import modelo.oad.except.OADException;
import modelo.oad.util.CriteriosBusqueda;
import modelo.oad.util.ParBean;
import modelo.bean.Cuenta;

public interface ManagerOAD {
	public void marcarCompraVendida(CompraBean compra)throws OADException;
	public void actualizarAcciones (String valor, double acciones, double preciocompra, double precioaccion, double precioActual) throws OADException;
//	public List<ValorBean> obtenerValores(Integer dias) throws OADException;
//	public void insertarCotizacion (CotizacionBean Cotizacion) throws OADException;
	
	//public List<CotizacionBean> obtenerCotizaciones (String valor, Integer dias) throws OADException;
	public void insertarCompra(String Valor, String FechaCompra,String NumAcciones,String PrecioCompra,String ImporteCompra,
			String ImporteCompraComisiones)throws NegocioException;

	public List<CotizacionBean> obtenerCotizaciones (CriteriosBusqueda criteriosBusqueda, List<ParBean> criteriosOrdenacion) throws OADException;
	public List<ValorEstrategiaBean> obtenerValoresEstrategia(Integer dias) throws OADException;
	
	public double ObtenerValorCompra(String valor)throws OADException;
	public void insertarCompras (List<CompraBean> listaCompras) throws OADException;
	public void insertarVentas (List<VentaBean> listaVentas) throws OADException;
	public List<EstrategiaBean> obtenerEstadisticas() throws OADException;
	public List<OperacionBean> obtenerOperaciones(String estrategia) throws OADException;
	
	public ValorBean obtenerValor (String cdValor) throws OADException;
	public int insertarVenta (VentaBean venta) throws OADException;
	public List <CompraBean> obtenerCompras()throws OADException;
	public void InsertarOperacion (CompraBean compra, VentaBean venta)throws OADException;
	public SoporteBean obtenerSoporte (String val,Double valor) throws OADException;
	public SoporteBean obtenerSoporteDiario (String val,Double valor) throws OADException;
	public ResistenciaBean obtenerResistencia (String val,Double valor) throws OADException;
	public void  AnadirNumRebotes (SoporteBean soporte)throws OADException;
	public void  AnadirNumRebotes (ResistenciaBean resistencia)throws OADException;
	public void insertarResistenciaFiable (String valor, double resistencia)throws OADException;
	public void insertarSoporteFiable (String valor, double resistencia)throws OADException;
	public void insertarPrecio (String valor, double prec)throws OADException;
	
//	public List<CotizacionBean> obtenerUltimasCotizaciones () throws OADException;
	
//	public void insertarValor (ValorBean Valor) throws OADException;
//	public void ActualizarValor (ValorBean Valor) throws OADException;
public void insertarSoporte (SoporteBean soporte) throws OADException;
public void insertarSoporte (SoporteBean soporte,int tipo) throws OADException;

public void insertarResistencia (ResistenciaBean resistencia) throws OADException;
public List <String> obtenerValoresEstrategia (String estrategia)throws OADException;
public List <ValorBean> obtenerValores (List <String> valores)throws OADException;
public List<String> obtenerValoresComprados () throws OADException;
public List<ValorBean> obtenerVal () throws OADException;
public void insertarValorResistencia (String valor, double resistencia,double precio,double compra)throws OADException;
public void insertarValorSoporte (String valor, double soporte, double precio)throws OADException;
public int MaximosRebotes(String valor)throws OADException;
public int MaximosRebotesResistencia(String valor)throws OADException;
public void EliminarAntiguos()throws OADException;
public void insertarValorEstrategia(ValorBean valor, String estrategia)throws OADException;
public void EliminarSoportes(String valor,double cotizacionActual)throws OADException;
public void EliminarResistencias(String valor,double cotizacionActual)throws OADException;
public void marcarCompraVendida(ValorBean valor)throws OADException;
public void ActualizarEstrategia (double res, double numOperaciones, double cantidadJugada, double porcentajeExito,double ganancias, String estragia)throws OADException;
public Dividendo ObtenerDividendo (String valor)throws OADException;
public void InsertarRSI(double RSI, String valor)throws OADException;
public List<CotizacionBean> obtenerCotizaciones (String valor, int ultimas) throws OADException;
public void InsertarMedia(double media, String tendencia, String valor)throws OADException;
public void InsertarMedia70(double media, String tendencia, String valor)throws OADException;
public void InsertarMedia200(double media, String tendencia, String valor)throws OADException;
public void insertarApertura (String valor, double apertura) throws OADException;
public void ActualizarStopLoss (String valor, double minimo) throws OADException;
public SoporteBean obtenerUltimoSoporte (String value, Double valor) throws OADException;
public void actualizarSoporteUltimo (String valor, double precio) throws OADException;
public SoporteBean obtenerSoporteFiable (String value, Double valor) throws OADException;
public void actualizarSoporteFiable (String valor, double precio) throws OADException;
public void actualizarResistenciaFiable (String valor, double precio) throws OADException;
public void actualizarResistenciaUltimo (String valor, double precio) throws OADException;
public ResistenciaBean obtenerUltimoResistencia (String value, Double valor) throws OADException;
public ResistenciaBean obtenerResistenciaFiable (String value, Double valor) throws OADException;
public void insertarValorResistencia (String valor, double resistencia, double profit, double beneficio,double ganancia)throws OADException;
public void insertarValorSoporte (String valor, double soporte, double stop, double posiblePerdidaAccion,double compra,double perdida,double soporteFiable, double beneficio, double ganancia)throws OADException;
public void  AnadirPrecio (SoporteBean soporte)throws OADException;
public List<SoporteBean> obtenerSoportes(String value) throws OADException;
public void EliminarSoporte(SoporteBean soporte)throws OADException;
public List<OperacionBean> obtenerOperacionesEstrategia(String estrategia, String valor) throws OADException;
public List<ResistenciaBean> obtenerResistencias(String value) throws OADException;
public void EliminarResistencia(ResistenciaBean resistencia)throws OADException;
public List<OperacionBean> obtenerOps(String tipo) throws OADException;
public int insertarCompra (CompraBean compra) throws OADException;
public List  <OperacionBean> obtenerOper(String estrategia) throws OADException;
public void insertarResistenciaDiario (ResistenciaBean resistencia,int tipo) throws OADException;
public ResistenciaBean obtenerResistenciaDiario (String value,Double valor) throws OADException;
public int MaximosRebotesDiario(String valor)throws OADException;
public void insertarValorSoporteDiario (String valor, double soporte, double precio)throws OADException;
public void insertarSoporteFiableDiario (String valor, double soporte)throws OADException;
public Cuenta obtenerCuenta (int id) throws OADException;
public List <CompraBean> obtenerCompras(String tipo)throws OADException;
public List <CompraBean> obtenerCompras(String tipo, String valorvendido)throws OADException;

public void ActualizarCartera (double actual, double actualComision, double cartera, double carteraComision, double ganancias, double gananciasComision, double porcentaje, double porcentajeComision)throws OADException;







//	public void ActualizarSoporte (SoporteBean soporte) throws OADException;
//	public ValorBean obtenerValor (String nombreValor) throws OADException;
}
